package org.sql.commands.mysql.filter;

// *************************************************************************/
// Charada Soft
// Area de Desarrollo de Sistemas de Información
// *************************************************************************/
// Proyecto : java connector sql 
// Archivo : Condition.java
// Descripcion : Clase Condition
// *************************************************************************/
// Version : 2.10.4
// Fecha de Creación: 30 de Junio de 2014
// Author : Daniel Andres Castillo Pedroza
// *************************************************************************/

import org.sql.commands.Filter;

public class Condition implements Filter {

    // Atributos de la clase Condition
    
    private String condition;
    private String connector;

    // Metodos de la clase Condition
    
    /**
     * Este método nos permite establecer la condición del Comando.
     *
     * @param condition Condicion del Comando
     */
    public void setCondition(String condition) {
        this.condition = condition;
    }

    /**
     * Este método nos permite establecer el conector de la Condición.
     *
     * @param connector Conector de la Condición
     */
    public void setConnector(String connector) {
        this.connector = connector;
    }

    // Metodos estáticos de la clase Condition
    
    /**
     * Este método nos permite crear una Condición para un Comando.
     *
     * @param condition Condicion del Comando
     * @return Retorna la condición en un objeto <code>Condition</code>.
     */
    public static Condition creatorFilter(String condition) {
        Condition conditionFilter = new Condition();
        conditionFilter.setCondition(condition);

        return conditionFilter; // Retornando Objeto CONDITION
    }

    /**
     * Este método nos permite crear una Condición para un Comando.
     *
     * @param condition Condicion del Comando
     * @param connector Conector de la Condición
     * @return Retorna la condición en un objeto <code>Condition</code>.
     */
    public static Condition creatorFilter(String condition, String connector) {
        Condition conditionFilter = new Condition(); // Instanciando objeto
        conditionFilter.setCondition(condition);
        conditionFilter.setConnector(connector);

        return conditionFilter; // Retornando Objeto CONDITION
    }

    // Metodos sobreescritos de la clase Condition
    
    @Override
    public String getFilter() {
        return "(" + condition + ")";
    }

    @Override
    public String getConnector() {
        return connector;
    }
}